﻿namespace Fee.Orders
{
    public class BudgetOrderPlanCost : PlanCost
    {
        public BudgetOrderPlanCost()
        {

        }

        public BudgetOrderPlanCost(PlanCost cost)
        {
            if (cost == null)
            {
                throw new System.ArgumentNullException(nameof(cost));
            }

            FirstPartyMeteria = cost.FirstPartyMeteria;

            Construction = cost.Construction;
            Supervisor = cost.Supervisor;
            Design = cost.Design;
            TotalAmount = cost.TotalAmount;

            Type = cost.Type;

            ConstructionEffect = cost.ConstructionEffect;
            SupervisorEffect = cost.SupervisorEffect;
            DesignEffect = cost.DesignEffect;
        }

        public void UpdateBy(BudgetOrderPlanCost cost)
        {
            FirstPartyMeteria = cost.FirstPartyMeteria;
            Construction = cost.Construction;
            Supervisor = cost.Supervisor;
            Design = cost.Design;
            TotalAmount = cost.TotalAmount;

            ConstructionEffect = cost.ConstructionEffect;
            SupervisorEffect = cost.SupervisorEffect;
            DesignEffect = cost.DesignEffect;

            Type = cost.Type;

        }
    }

    public class FormalOrderPlanCost : PlanCost
    {
        public FormalOrderPlanCost()
        {

        }

        public FormalOrderPlanCost(PlanCost cost)
        {
            if (cost == null)
            {
                throw new System.ArgumentNullException(nameof(cost));
            }

            FirstPartyMeteria = cost.FirstPartyMeteria;

            Construction = cost.Construction;
            Supervisor = cost.Supervisor;
            Design = cost.Design;
            TotalAmount = cost.TotalAmount;

            Type = cost.Type;

            ConstructionEffect = cost.ConstructionEffect;
            SupervisorEffect = cost.SupervisorEffect;
            DesignEffect = cost.DesignEffect;
        }

        public void UpdateBy(FormalOrderPlanCost cost)
        {
            FirstPartyMeteria = cost.FirstPartyMeteria;
            Construction = cost.Construction;
            Supervisor = cost.Supervisor;
            Design = cost.Design;
            TotalAmount = cost.TotalAmount;
            Type = cost.Type;
            ConstructionEffect = cost.ConstructionEffect;
            SupervisorEffect = cost.SupervisorEffect;
            DesignEffect = cost.DesignEffect;

        }

    }
}